# 小型标准数据集
from sklearn.datasets import load_iris
data = load_iris()
print(dir(data))

print(data.feature_names,data.target_names) # 显示各维特征和标签名称
print(data.data.shape,data.target.shape) # 显示特征数据和标签数据形状
print(data.filename) # 显示数据在本地的存储位置
print(data.DESCR) # 显示数据集描述文本信息

from sklearn.datasets import load_digits
from matplotlib import pyplot as plt # 导入绘图模块

# 手写字示例
digit = load_digits() #加载手写数字数据集
plt.subplots(5,10) #5行10列子图
for i, data in enumerate(zip(digit.data[:50],digit.target[:50])):
      plt.subplot(5,10,i + 1,title=str(data[1])) # 设置子图标题为标签
      plt.xticks([]) # 不显示横坐标
      plt.yticks([]) # 不显示纵坐标
      plt.imshow(data[0].reshape((8,8)),cmap=plt.cm.gray_r) #灰度图形显示
plt.show()

# 真实世界数据集
from sklearn import datasets
faces = datasets.fetch_olivetti_faces()
print(dir(faces))

# 算法生成数据集
from sklearn import datasets
from matplotlib import pyplot as plt
fig = plt.figure()
X1,y1 = datasets.make_blobs(n_samples=20,centers=3,n_features=2)
ax = fig.add_subplot(221) # 左上角子图
ax.scatter(X1[:,0],X1[:,1],marker="o",c=y1,s=25,edgecolor='k')
X2,y2 = datasets.make_s_curve(n_samples=1000) # 生成s曲图
ax = fig.add_subplot(222,projection='3d') # 在右上角三维空间子图中展示
ax.scatter3D(X2[:,0],X2[:,1],X2[:,2],c=y2,cmap=plt.cm.Spectral)
X3,y3 = datasets.make_moons()
ax = fig.add_subplot(223) # 左下角子图
ax.scatter(X3[:,0],X3[:,1],marker='.',c=y3,s=35,edgecolors='b')
X4,y4 = datasets.make_circles()
ax = fig.add_subplot(224) # 右下角子图
ax.scatter(X4[:,0],X4[:,1],marker=".",c=y4,s=35,edgecolors='r')
plt.show()